Centos7-apache2.4.6优化

Apache配置文件优化

apache的配置文件优化

Apache禁止遍历目录

将Options Indexes FollowSymLinks中的Indexes 去掉,就可以禁止Apache

显示该目录结构。Indexes 的作用就是当该目录下没有index.html文件时,就显示目录结构。

apache 隐藏版本信息

测试默认apache 的状态信息

1
2
3
4
5
6
7
8
9
10
11
[root@1314it conf]# curl -Is localhost
HTTP/1.1 200 OK
Date: Tue, 16 Nov 2010 04:20:15 GMT
Server: Apache/2.2.3
(CentOS) DAV/2 PHP/5.1.6
mod_perl/2.0.4
Perl/v5.8.8
X-Powered-By: PHP/5.1.6
Connection: close
Content-Type: text/html;
charset=GB2312

修改主配置文件httpd.conf,将下面两行添加到配置文件的末尾

1
2
ServerSignature Off
ServerTokens ProductOnly

重启apache测试

1
2
3
4
5
6
7
[root@1314it conf]# curl -Is localhost
HTTP/1.1 200 OK
Date: Tue, 16 Nov 2010 04:21:41 GMT
Server: Apache
X-Powered-By: PHP/5.1.6
Connection: close
Content-Type: text/html; charset=GB2312

关闭trace-method

配置文件添加一行

1
TraceEnable off

Apache并发数调整

1
2
3
4
5
6
7
8
查看Apache的工作模式:apache -l
如果出现prefork.c,则是工作在prefork模式下
查看当前的连接数:
ps aux|grep httpd|wc -l
pgrep httpd|wc -l
计算httpd占用内存的平均数:
ps aux|grep -v grep|awk '/httpd/{sum+=$6;n++};END{print sum/n}'
使用ulimit -n 65535 增加文件打开数量

Apache工作模式及推荐配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
# prefork MPM
# StartServers:启动时服务器的进程数
# MinSpareServers:保有的备用进程的最小数目
# MaxSpareServers:保有的备用进程的最大数目
# MaxClients:服务器允许启动的最大进程数
# MaxRequestsPerChild:一个服务进程允许的最大请求数
<IfModule prefork.c> // 设置使用预生派(Prefork MPM)运行方式的参数,此方式是Redhat默认的方式
StartServers 8 // 设置服务器启动时运行的进程数为8
MinSpareServers 5 // 如果低于5个空闲子进程,就会创建新的子进程为客户提供服务
MaxSpareServers 20 // 如果存在高于20个空闲子进程,就创建逐一删除的子进程来提高系统性能
MaxClients 150 // 限制同一时间连接数不能超过150
MaxRequestsPerChild 1000 // 限制每个子进程在结束请求之前能处理的连接请求为1000
</IfModule>

# worker MPM
# StartServers:启动时的服务进程数目
# MaxClients:允许同时连接的最大用户数目
# MinSpareThreads:保有的最小工作线程数目
# MaxSpareThreads:允许保有的最大工作线程数目
# ThreadsPerChild:每个服务进程中的工作线程常数
# MaxRequestsPerChild:服务进程中允许的最大请求数目
<IfModule worker.c> // 设置使用工作者模式(worker MPM)运行方式的参数
StartServers 2
MaxClients 150
MinSpareThreads 25
MaxSpareThreads 75
ThreadsPerChild 25
MaxRequestsPerChild 0
</IfModule>

# perchild MPM
# NumServers:服务进程数量
# StartThreads:每个服务进程中的起始线程数量
# MinSpareThreads:保有的最小线程数量
# MaxSpareThreads:保有的最大线程数量
# MaxThreadsPerChild:每个服务进程允许的最大线程数
# MaxRequestsPerChild:每个服务进程允许连接的最大数量
<IfModule perchild.c> // 设置使用独立子进程(Perchild MPM)运行方式的参数
NumServers 5
StartThreads 5
MinSpareThreads 5
MaxSpareThreads 10
MaxThreadsPerChild 20
MaxRequestsPerChild 0
</IfModule>

512M内存

1
2
3
4
5
6
StartServers 5
MinSpareServers 5
MaxSpareServers 10
ServerLimit 256
MaxClients 256
MaxRequestsPerChild 100

1G内存

1
2
3
4
5
6
StartServers 10
MinSpareServers 10
MaxSpareServers 25
ServerLimit 256
MaxClients 256
MaxRequestsPerChild 1000//或者设置为0,即不限制

用户敲下一个域名访问服务器的过程是如何进行的?

  1. 首先客户的服务器会检查自己的缓存,如果有对应的ip,
  2. 则直接返回ip,客户使用ip去访问服务器,与服务器进行TCP三次握手,
  3. 三次握手建立完毕,发送HTTP数据请求到服务器,服务器进行响应。
  4. 如果没有,则请求会发往本地DNS服务器,本地的DNS服务器负责解析,
  5. 如果没有对应ip,发起迭代查询,直到查询到所需的ip地址,
  6. 然后再使用ip去访问服务器,进行tcp三次握手,三次握手建立完毕后,
  7. 发送http请求,服务器进行响应。
--------------------本文结束,感谢您的阅读--------------------

本文标题:Centos7-apache2.4.6优化

文章作者:弓昭

发布时间:2018年12月21日 - 20:27

最后更新:2020年04月08日 - 22:20

原始链接:https://gongzhao1.gitee.io/Centos7-apache2.4.6 优化/

联系邮箱:gongzhao1@foxmail.com